import {ModuleWithProviders, NgModule} from '@angular/core';

import { BaseIfOnDomDirective } from '@base/directives/base-if-on-dom/base-if-on-dom.directive';
import { BaseInnerScrollDirective } from '@base/directives/base-inner-scroll/base-inner-scroll.directive';
import { BasePerfectScrollbarDirective } from '@base/directives/base-perfect-scrollbar/base-perfect-scrollbar.directive';
import { BaseMatSidenavHelperDirective, BaseMatSidenavTogglerDirective } from '@base/directives/base-mat-sidenav/base-mat-sidenav.directive';

import { BaseAlcService} from './base-alc/base-alc.service';
import { BaseAclDirective} from './base-alc/base-acl.directive';
import { BaseAclIfDirective} from './base-alc/base-acl-if.directive';

@NgModule({
    declarations: [
        BaseIfOnDomDirective,
        BaseInnerScrollDirective,
        BaseMatSidenavHelperDirective,
        BaseMatSidenavTogglerDirective,
        BasePerfectScrollbarDirective,
        BaseAclDirective,
        BaseAclIfDirective
    ],
    imports     : [],
    exports     : [
        BaseIfOnDomDirective,
        BaseInnerScrollDirective,
        BaseMatSidenavHelperDirective,
        BaseMatSidenavTogglerDirective,
        BasePerfectScrollbarDirective,
        BaseAclDirective,
        BaseAclIfDirective
    ]
})
export class BaseDirectivesModule
{
    static forRoot(): ModuleWithProviders<any> {
        return {
            ngModule: BaseDirectivesModule,
            providers: [BaseAlcService],
        };
    }
}
